<?php

require_once 'CocheEscolar.php';
require_once 'Nino.php';

/**
 * Escuela
 */
class Escuela
{

    /**
     *
     * @var string
     */
    private $_nombre;

    /**
     *
     * @var string
     */
    private $_direccion;

    /**
     *
     * @var Array CochesEscolares
     */
    private $_colCochesEscolares = array();

    /**
     *
     * @var Array Niños
     */
    private $_colNiños = array();

    /**
     *
     * @param string $nombre
     * @param string $direccion
     * @return Escuela
     */
    public function __construct($nombre, $direccion)
    {
        $this->_nombre = $nombre;
        $this->_direccion = $direccion;
    }

    public function __toString()
    {
        return $this->_nombre;
    }

    /**
     *
     * @return array CocheEscolar
     */
    public function getCochesEscolares()
    {
        return $this->_colCochesEscolares;
    }

    /**
     *
     * @param Coche $coche
     */
    public function addCoche(CocheEscolar $coche)
    {
        $this->_colCochesEscolares[] = $coche;
    }

    /**
     *
     * @param Niño $niño
     */
    public function addNiño(Niño $niño)
    {
        $this->_colNiños[] = $niño;
    }

    /**
     * Busca un niño dentro del coche
     *
     * @param string $nombre
     * @return Niño
     */
    public function buscarNiño($nombre)
    {
        foreach ($this->_colCochesEscolares as $transporte) {

            $niño = $transporte->buscarNiño($nombre);

            if ($niño !== null) {
                return $niño;
            }
        }
    }

    /**
     * Devuelve el coche en el que viaja un niño
     *
     * @param string $nombre
     * @return CocheEscolar
     */
    public function buscarNiño2Coche($nombre)
    {
        foreach ($this->_colCochesEscolares as $transporte) {
            if ($transporte->buscarNiño($nombre)) {
                return $transporte;
            }
        }
    }

    /**
     *
     * @param string $matricula
     * @return Coche
     */
    public function buscarCoche($matricula)
    {
        foreach ($this->_colCochesEscolares as $coche) {
            if ($coche->getMatricula() == $matricula) {
                return $coche;
            }
        }
    }

}